package com.mycoupon.mycouponframework.result;


import lombok.Data;
import lombok.experimental.Accessors;

import java.io.Serial;
import java.io.Serializable;

/**
 * @projectName: MyCoupon
 * @package: com.mycoupon.mycouponframework.result
 * @className: Result
 * @author: thinkBook
 * @description: 全局返回对象
 * @date: 2025/4/4 22:30
 * @version: 1.0
 */
@Data
@Accessors(chain = true)  // 当值为true时，对应字段的set方法被调用后，返回当前对象
public class Result<T> implements Serializable {

    @Serial   // 指定类的序列化版本号：确保序列化和反序列化对象的版本匹配   添加注释是为了编译类型的检查
    private static final long serialVersionUID = 5679018624309023727L;

    /**
     * 正确返回码
     */
    public static final String SUCCESS_CODE = "0";

    /**
     * 返回码   定义为private属性只能由类的内部访问，其他类访问只能使用get/set实现
     */
    private String code;

    /**
     * 返回信息
     */
    private String message;

    /**
     * 响应数据
     */
    private T data;

    private String requestId;

    public boolean isSuccess(){
        return SUCCESS_CODE.contains(code);
    }


}
